欧美一区2区三区4区公司二百,国产精品婷婷午夜在线观看,自拍偷拍亚洲精品,国产美女诱惑一区二区

如何設(shè)置、列出和管理Linux環(huán)境變量

環(huán)境變量是 Linux 管理的一個重要方面,它為工程師提供了一個強(qiáng)大的定制系統(tǒng)的工具。在本文中,我們將詳細(xì)了解什么是 Linux 環(huán)境變量,它們與 shell 變量有何不同,以及如何列出、設(shè)置和管理它們。

如何在Linux上對磁盤驅(qū)動器進(jìn)行分區(qū)和格式化

什么是 Linux 環(huán)境變量?

Linux 環(huán)境變量是 shell 及其子進(jìn)程使用的動態(tài)變量。環(huán)境變量定義了與 Linux 系統(tǒng)如何工作相關(guān)的各個方面。例如,用戶的默認(rèn) shell 是在 SHELL 變量中定義的。同樣,許多管理員使用 JAVA_HOME= 環(huán)境變量將程序指向系統(tǒng)上特定版本的 Java。

使用 Linux 環(huán)境變量時要記住的幾個要點是:

  • 環(huán)境變量遵循<NAME>=<VALUE>格式。
  • 您可以通過用冒號分隔它們來為單個變量指定多個值,如下所示:
    <NAME>=<VALUE1>:<VALUE2>:<VALUE3>
  • 環(huán)境變量區(qū)分大小寫。
  • 按照慣例,但不是規(guī)則,環(huán)境變量名稱總是大寫。
  • Shell 變量與環(huán)境變量不同。Shell 變量僅適用于當(dāng)前 shell,不適用于任何子進(jìn)程。我們將在 Linux shell 變量與 Linux 環(huán)境變量部分仔細(xì)研究這個主題。

考慮到所有這些,讓我們繼續(xù)學(xué)習(xí)本教程。

先決條件

我們的示例使用 Ubuntu 20.04 和 GNU Bash 5.0.17,但您可以在大多數(shù)現(xiàn)代 Linux 系統(tǒng)上進(jìn)行操作。
如何列出 Linux 環(huán)境變量 列出 Linux 環(huán)境變量
的方法有多種,這里我們將演示一些最常見的方法。

使用 printenv 列出 Linux 環(huán)境變量

該printenv命令顯示當(dāng)前環(huán)境變量。

您可以printenv通過運行不帶任何選項或參數(shù)的命令來列出所有當(dāng)前的 Linux 環(huán)境變量。

printenv

的輸出應(yīng)該與此類似:

SHELL=/bin/bash
SUPERBREAKFAST=Pepper and Egg
PWD=/root
LOGNAME=root
XDG_SESSION_TYPE=tty
MOTD_SHOWN=pam
HOME=/root
LANG=C.UTF-8
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:
SSH_CONNECTION=24.148.23.154 2068 84.32.188.154 22
EASTEREGG=You pay attention to detail, good job!
LESSCLOSE=/usr/bin/lesspipe %s %s
XDG_SESSION_CLASS=user
TERM=xterm
LESSOPEN=| /usr/bin/lesspipe %s
USER=root
SHLVL=1
XDG_SESSION_ID=839
XDG_RUNTIME_DIR=/run/user/0
SSH_CLIENT=24.148.23.154 2068 22
XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/desktop
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/0/bus
SSH_TTY=/dev/pts/0
_=/usr/bin/printenv

您還可以printenv用來顯示各個環(huán)境變量。顯示單個 Linux 環(huán)境變量的基本語法printenv是:
printenv [name]

例如,要打印PWD環(huán)境變量,請使用以下命令:

printenv PWD

輸出應(yīng)該顯示您的 shell 的當(dāng)前工作目錄。

如何設(shè)置、列出和管理Linux環(huán)境變量

使用 env 列出 Linux 環(huán)境變量

env 命令可以列出所有環(huán)境變量,輸出類似于printenv.?要使用 env 列出所有 Linux 環(huán)境變量,請運行不帶任何選項或參數(shù)的命令,如下所示:

env

在大多數(shù)情況下,env輸出應(yīng)與printenv除_=變量外的輸出相匹配。發(fā)生這種情況是因為該_=變量是用于調(diào)用 shell 或 shell 腳本的特殊 Bash 參數(shù)。如果您在現(xiàn)代 Linux 系統(tǒng)上使用 env,該?_=值將匹配env二進(jìn)制文件的位置(例如/usr/bin/env)。如果您使用printenv,它將匹配 printenv 二進(jìn)制文件的位置(例如/usr/bin/printenv)。

使用 echo 顯示 Linux 環(huán)境變量

顯示單個 Linux 環(huán)境變量的最快方法之一是使用echo命令。基本語法是echo $<variable_name>.

例如,要打印 PATH 環(huán)境變量,請使用以下命令:

echo $PATH

輸出應(yīng)類似于:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

該echo $<variable_name>命令也適用于不是環(huán)境變量的 shell 變量。例如,如果我們創(chuàng)建一個 BREAKFAST 變量并將其設(shè)置為'Pepper & Egg',我們可以看到輸出 withecho $BREAKFAST但看不到 with?printenv。

如何設(shè)置、列出和管理Linux環(huán)境變量

列出 Linux 環(huán)境變量的其他方法

列出 Linux 環(huán)境變量的其他方法包括:

  • declare- 這個內(nèi)置的 shell 實用程序可以使用此命令顯示 shell 和環(huán)境變量。
    如何設(shè)置、列出和管理Linux環(huán)境變量
  • set- 顯示 shell 變量、環(huán)境變量和 shell 函數(shù)。
    如何設(shè)置、列出和管理Linux環(huán)境變量
  • compgen -v- 顯示所有 shell 和環(huán)境變量的名稱。
    如何設(shè)置、列出和管理Linux環(huán)境變量

如何設(shè)置 Linux 環(huán)境變量

設(shè)置 Linux 環(huán)境變量的基本命令是

export <NAME>='<value>'

例如,要創(chuàng)建名為 SANDWICH 且值為 Pepper And Egg 的環(huán)境變量,請使用以下命令:

export SANDWICH='Pepper And Egg'

要確認(rèn)環(huán)境變量已創(chuàng)建,請使用命令

printenv SANDWICH

輸出應(yīng)如下所示:

如何設(shè)置、列出和管理Linux環(huán)境變量

如何創(chuàng)建 Shell 變量

您可以使用這個基本命令結(jié)構(gòu)創(chuàng)建 shell 變量<NAME>='<value>'。

例如,要創(chuàng)建一個名為 COOLSERVER 且值為 Cherry 的 shell 變量,請使用以下命令:

COOLSERVER='Cherry'

您可以使用以下命令確認(rèn)變量現(xiàn)在存在:

echo $COOLSERVER

輸出應(yīng)該是:

Cherry

要確認(rèn)該變量不是環(huán)境變量,請執(zhí)行以下命令:

printenv COOLSERVER

因為變量不是環(huán)境變量,所以應(yīng)該沒有輸出:

如何設(shè)置、列出和管理Linux環(huán)境變量

如何將 Shell 變量轉(zhuǎn)換為環(huán)境變量

要將 shell 變量轉(zhuǎn)換為環(huán)境變量,基本的命令語法是export <Shell_Variable_Name>.

例如,要將上一示例中的COOLSERVER變量轉(zhuǎn)換為環(huán)境變量,請使用以下命令:

export COOLSERVER

現(xiàn)在,該printenv COOLSERVER命令應(yīng)打印 Cherry 作為輸出:

如何設(shè)置、列出和管理Linux環(huán)境變量

Linux Shell 變量與 Linux 環(huán)境變量

到目前為止,您可以看到 shell 變量和環(huán)境變量是不同的東西。現(xiàn)在,讓我們仔細(xì)看看差異及其重要性。

Linux shell 變量和 Linux 環(huán)境變量之間的主要區(qū)別在于:
shell 變量不與 shell 的子進(jìn)程共享,環(huán)境變量與 shell 的子進(jìn)程共享。

為了說明為什么這種差異很重要,讓我們通過一個簡單的 bash 腳本來演示一個示例。

首先,創(chuàng)建一個名為CLOUD的變量并將值設(shè)置為Cherry Servers!.

CLOUD='Cherry Servers!'

接下來,使用echo命令顯示變量。

echo $CLOUD

這是端到端的樣子:

如何設(shè)置、列出和管理Linux環(huán)境變量

現(xiàn)在,創(chuàng)建一個test.sh包含相同命令的 bash 腳本。該腳本應(yīng)如下所示:

#!/bin/bash
echo $CLOUD

使用此命令使腳本可執(zhí)行:

chmod +x test.sh

現(xiàn)在,運行腳本:

./test.sh

輸出應(yīng)為空白,如下所示:

如何設(shè)置、列出和管理Linux環(huán)境變量

輸出為空的原因是因為$CLOUD它是一個 shell 變量。它包含在當(dāng)前 shell 實例中。同時,test.sh腳本啟動一個新進(jìn)程,并且由于$CLOUD未設(shè)置環(huán)境變量,腳本不打印任何內(nèi)容。

讓我們$CLOUD用這個命令創(chuàng)建一個環(huán)境變量(注意不要在變量名前使用 $):

export CLOUD

現(xiàn)在,再次運行 test.sh 腳本。

./test.sh

你應(yīng)該看到這個輸出:

如何設(shè)置、列出和管理Linux環(huán)境變量

如何刪除 Linux 環(huán)境變量

刪除現(xiàn)有 Linux 環(huán)境變量的基本語法是unset <NAME>.

例如,要取消設(shè)置我們的COOLSERVER變量,請使用以下命令:

unset COOLSERVER

要確認(rèn)變量現(xiàn)在已刪除,請執(zhí)行以下命令:

printenv COOLSERVER

因為變量不是環(huán)境變量,所以應(yīng)該沒有輸出:

如何設(shè)置、列出和管理Linux環(huán)境變量

如何使 Linux 環(huán)境變量永久化

到目前為止,我們創(chuàng)建的環(huán)境變量只會在您的 shell 會話期間持續(xù)存在。如果您注銷或重新啟動,您需要重新創(chuàng)建它們才能使用它們。

幸運的是,有幾種方法可以使 Linux 環(huán)境變量在不同的 shell 會話中保持不變。

使用 .profile 使登錄 Shell 的環(huán)境變量永久化

該.profiile文件存在于用戶的主目錄中。您可以通過編輯用戶的.profile文件以包含用于設(shè)置環(huán)境變量的導(dǎo)出命令來為用戶添加環(huán)境變量。

例如,要使我們的COOLSERVER環(huán)境變量對當(dāng)前用戶永久有效,請遵循以下過程:

  1. 將目錄更改為用戶的主目錄cd ~
  2. .profile在文本編輯器(例如 nano、vi、vim 等)中打開文件
  3. 將以下行添加到文件底部:export COOLSERVER='Cherry'
  4. 保存更改

更改將在下次登錄時生效。您可以使用以下命令使它們對當(dāng)前終端生效:

. ~/.profile

使用 .bashrc 使非登錄交互式 Shell 的環(huán)境變量永久化

對于非登錄 shell,您可以遵循與登錄 shell 相同的過程,但不是編輯~/.profile文件,而是編輯~/.bashrc.

使用 /etc/environment 使環(huán)境變量在系統(tǒng)范圍內(nèi)永久化

??警告:?系統(tǒng)上的任何 shell 都可以訪問系統(tǒng)范圍的變量,因此請謹(jǐn)慎設(shè)置。

要設(shè)置系統(tǒng)范圍的 Linux 環(huán)境變量,您可以編輯該/etc/environment文件。不是將導(dǎo)出命令附加到文件,而是將該<NAME>='<VALUE>'對附加到文件末尾。

例如,要使我們的COOLSERVER環(huán)境變量對整個系統(tǒng)永久有效,請遵循以下過程:

  1. 將目錄更改為用戶的主目錄cd /etc
  2. environment在文本編輯器(例如 nano、vi、vim 等)中打開文件
  3. 將以下行添加到文件底部COOLSERVER='Cherry'
  4. 保存更改

文章鏈接: http://m.qzkangyuan.com/13554.html

文章標(biāo)題:如何設(shè)置、列出和管理Linux環(huán)境變量

文章版權(quán):夢飛科技所發(fā)布的內(nèi)容,部分為原創(chuàng)文章,轉(zhuǎn)載請注明來源,網(wǎng)絡(luò)轉(zhuǎn)載文章如有侵權(quán)請聯(lián)系我們!

聲明:本站所有文章,如無特殊說明或標(biāo)注,均為本站原創(chuàng)發(fā)布。任何個人或組織,在未征得本站同意時,禁止復(fù)制、盜用、采集、發(fā)布本站內(nèi)容到任何網(wǎng)站、書籍等各類媒體平臺。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。

給TA打賞
共{{data.count}}人
人已打賞
IDC云庫

如何使用SFTP上傳文件?

2022-12-1 15:00:59

IDC云庫

如何使用Ansible Shell模塊運行遠(yuǎn)程命令

2022-12-1 15:58:16

0 條回復(fù) A文章作者 M管理員
    暫無討論,說說你的看法吧
?
個人中心
購物車
優(yōu)惠劵
今日簽到
有新私信 私信列表
搜索
主站蜘蛛池模板: 营口市| 舒城县| 于都县| 无为县| 临猗县| 邢台县| 丘北县| 龙山县| 诏安县| 舟曲县| 钟山县| 萍乡市| 华容县| 武邑县| 宜州市| 永登县| 电白县| 迁安市| 桐柏县| 古浪县| 珲春市| 武定县| 静海县| 绥化市| 平顶山市| 田林县| 筠连县| 武定县| 万山特区| 乌苏市| 中超| 石林| 泽普县| 谢通门县| 洛扎县| 新乡县| 承德县| 达孜县| 福清市| 桃园市| 偃师市|